home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Presen…tion Library 4 (Reseller) / Apple Ref. & Pres. Lib.v4.0.iso / 5-Fonts & Software / Demo Software / Wingz / Scripts / calc (.txt) next >
Wingz Script  |  1989-02-08  |  10KB  |  225 lines

  1. WNGZWZSC01b1
  2. 1on mousedown call calc:putchar("1") end mousedown
  3. 1on mousedown call calc:putchar("2") end mousedown
  4. 1on mousedown call calc:putchar("3") end mousedown
  5. 1on mousedown call calc:putchar("4") end mousedown
  6. 1on mousedown call calc:putchar("5") end mousedown
  7. 1on mousedown call calc:putchar("6") end mousedown
  8. 1on mousedown call calc:putchar("7") end mousedown
  9. 1on mousedown call calc:putchar("8") end mousedown
  10. 1on mousedown call calc:putchar("9") end mousedown
  11. 0         
  12. 1on mousedown call calc:putchar("0") end mousedown
  13. 1on mousedown call calc:putchar(".") end mousedown
  14. zon mousedown
  15.         calc:formula = ""
  16.         field text "0"
  17.         select field text from 32767 to 32767
  18.         calc:wasop = 1
  19.         end mousedown
  20. .on mousedown call calc:doop("^") end mousedown
  21. .on mousedown call calc:doop("/") end mousedown
  22. .on mousedown call calc:doop("*") end mousedown
  23. .on mousedown call calc:doop("-") end mousedown
  24. .on mousedown call calc:doop("+") end mousedown
  25. -on mousedown call calc:recalc() end mousedown
  26. .on mousedown call calc:doop("(") end mousedown
  27. .on mousedown call calc:doop(")") end mousedown
  28. Dollar
  29. Franc
  30. Pound
  31. .on mousedown call calc:convert() end mousedown
  32.     Ex. Rates
  33. ,on mousedown call calc:rates() end mousedown
  34. Quit Calculator
  35.  International Calculator
  36. Exchange Rates:  $1.0  U.S. =
  37. Franc
  38. Cancel@
  39. hcalc:dm = ctstring(2,0) calc:franc = ctstring(3,0)
  40.         calc:yen = ctstring(4,0) calc:pound = ctstring(5,0)
  41. calc:result =
  42. calc:result = (
  43. franc
  44. pound
  45. formula
  46. result
  47. wasop
  48. lastcur
  49. clator
  50. rates
  51. recalcd
  52. putchar9
  53. convert
  54. define dm,franc,yen,pound,formula,result,wasop,lastcur
  55. function clator()
  56.     define xoff, yoff
  57.     dm = 1.749
  58.     franc = 5.976
  59.     yen = 123.21
  60.     pound = 0.5486
  61.     formula = ""
  62.     wasop = 1
  63.     lastcur = 1
  64.     xoff = 0
  65.     yoff = 200
  66.     new modal dialog box at (-1,-1) (4800,5400)
  67.     add push button "1" at (1700+xoff,3000+yoff)+(650,600)
  68.     script "on mousedown call calc:putchar(""1"") end mousedown"
  69.     add push button "2" at (2450+xoff,3000+yoff)+(650,600)
  70.     script "on mousedown call calc:putchar(""2"") end mousedown"
  71.     add push button "3" at (3200+xoff,3000+yoff)+(650,600)
  72.     script "on mousedown call calc:putchar(""3"") end mousedown"
  73.     add push button "4" at (1700+xoff,2300+yoff)+(650,600)
  74.     script "on mousedown call calc:putchar(""4"") end mousedown"
  75.     add push button "5" at (2450+xoff,2300+yoff)+(650,600)
  76.     script "on mousedown call calc:putchar(""5"") end mousedown"
  77.     add push button "6" at (3200+xoff,2300+yoff)+(650,600)
  78.     script "on mousedown call calc:putchar(""6"") end mousedown"
  79.     add push button "7" at (1700+xoff,1600+yoff)+(650,600)
  80.     script "on mousedown call calc:putchar(""7"") end mousedown"
  81.     add push button "8" at (2450+xoff,1600+yoff)+(650,600)
  82.     script "on mousedown call calc:putchar(""8"") end mousedown"
  83.     add push button "9" at (3200+xoff,1600+yoff)+(650,600)
  84.     script "on mousedown call calc:putchar(""9"") end mousedown"
  85.     add push button "0         " at (1700+xoff,3700+yoff)+(1400,600)
  86.     script "on mousedown call calc:putchar(""0"") end mousedown"
  87.     add push button "." at (3200+xoff,3700+yoff)+(650,600)
  88.     script "on mousedown call calc:putchar(""."") end mousedown"
  89.     add push button "C" at (1700+xoff,900+yoff)+(650,600)
  90.     script "on mousedown
  91.         calc:formula = """"
  92.         field text ""0""
  93.         select field text from 32767 to 32767
  94.         calc:wasop = 1
  95.         end mousedown"
  96.     add push button "^" at (2450+xoff,900+yoff)+(650,600)
  97.     script "on mousedown call calc:doop(""^"") end mousedown"
  98.     add push button "/" at (3200+xoff,900+yoff)+(650,600)
  99.     script "on mousedown call calc:doop(""/"") end mousedown"
  100.     add push button "*" at (3950+xoff,900+yoff)+(650,600)
  101.     script "on mousedown call calc:doop(""*"") end mousedown"
  102.     add push button "-" at (3950+xoff,1600+yoff)+(650,600)
  103.     script "on mousedown call calc:doop(""-"") end mousedown"
  104.     add push button "+" at (3950+xoff,2300+yoff)+(650,600)
  105.     script "on mousedown call calc:doop(""+"") end mousedown"
  106.     add push button "=" at (3950+xoff,3000+yoff)+(650,1300)
  107.     script "on mousedown call calc:recalc() end mousedown"
  108.     add push button "(" at (200+xoff,900+yoff)+(650,600)
  109.     script "on mousedown call calc:doop(""("") end mousedown"
  110.     add push button ")" at (950+xoff,900+yoff)+(650,600)
  111.     script "on mousedown call calc:doop("")"") end mousedown"
  112.     add field at (200+xoff,200+yoff)+(4400,400)
  113.     field justification right
  114.     field text "0"
  115.     select field text from 32767 to 32767
  116.     add radio button "Dollar","DM","Franc","Yen","Pound" at 
  117.         (200+xoff,2300+yoff)+(1400,2000)
  118.     no line border
  119.     script "on mousedown call calc:convert() end mousedown"
  120.     add push button "Ex. Rates" at (200+xoff,1600+yoff)+(1400,600)
  121.     script "on mousedown call calc:rates() end mousedown"
  122.     add push button "Quit Calculator" at (500+xoff,4400+yoff) +(2.5 inch, .45 inch)
  123.     dialog cancel push button
  124.     select control 24
  125.     thick inner line border
  126.     add text " International Calculator" at (600,0)+(2.4 inch, 18 point )
  127.     select control 25
  128.     no line border
  129.     use dialog box
  130. end function
  131. function rates()
  132.     new modal dialog box at (-1,-1) (5000,5000)
  133.     add text "Exchange Rates:  $1.0  U.S. =" at (600,100) +(3 inches,700)
  134.     no line border
  135.     add field at (200,900) (4800,1300)
  136.     field text dm
  137.     show control name "DM"
  138.     add field at (200,1600) (4800,2000)
  139.     field text franc
  140.     show control name "Franc"
  141.     add field at (200,2300) (4800,2700)
  142.     field text yen
  143.     show control name "Yen"
  144.     add field at (200,3000) (4800,3400)
  145.     field text pound
  146.     show control name "
  147.     add push button "OK@", "Cancel@" at (4000, 3500) (4800, 4800)
  148.     dialog cancel push button
  149.     select control 6
  150.     dialog default push button
  151.     script "calc:dm = ctstring(2,0) calc:franc = ctstring(3,0)
  152.         calc:yen = ctstring(4,0) calc:pound = ctstring(5,0)"
  153.     use dialog box
  154. end function
  155. function recalc()
  156.     invalidate on    
  157.         formula = "calc:result =" & formula & ctstring(21,0)
  158.         run formula
  159.         select control 21
  160.         field text result
  161.         select field text from 32767 to 32767
  162.         formula = ""
  163.     invalidate off
  164. end function
  165. function doop(character)
  166.     if character <> "("
  167.         formula = formula & ctstring(21,0) & character
  168.     else
  169.         formula = formula & character
  170.     end if
  171.     wasop = 1
  172.     if (character = ")" or character = "(")
  173.         select control 21
  174.         field text ""
  175.         select field text from 32767 to 32767
  176.     end if
  177. end function
  178. function putchar(character)
  179.     define string
  180.     invalidate on
  181.     select control 21
  182.     if wasop
  183.         string = character
  184.         wasop = 0
  185.     else
  186.         string = ctstring(21,0) & character
  187.     end if
  188.     field text string
  189.     select field text from 32767 to 32767
  190.     invalidate off
  191. end function
  192. function convert()
  193.     define cur
  194.     cur = ctvalue(22,0)
  195.     if cur <> lastcur
  196.         formula = "calc:result = (" & formula & ctstring(21,0) & ")"
  197.         case lastcur
  198.             when 2
  199.                 formula = formula & "/" & dm
  200.             when 3
  201.                 formula = formula & "/" & franc
  202.             when 4
  203.                 formula = formula & "/" & yen
  204.             when 5
  205.                 formula = formula & "/" & pound
  206.         end case
  207.         case cur
  208.             when 2
  209.                 formula = formula & "*" & dm
  210.             when 3
  211.                 formula = formula & "*" & franc
  212.             when 4
  213.                 formula = formula & "*" & yen
  214.             when 5
  215.                 formula = formula & "*" & pound
  216.         end case
  217.         run formula
  218.         select control 21
  219.         field text result
  220.         select field text from 32767 to 32767
  221.         formula = ""
  222.         lastcur = cur
  223.     end if
  224. end function
  225.